package dominio;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

@Entity(name = "infantil")
@DiscriminatorValue("INFANTIL")
public class Infantil extends Articulo {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9089486882817486572L;

	private String edadRecomendada;

	public Infantil() {
		super();
	}

	public Infantil(Long codigo, String nombre, String descripcion,
			String marca, Float precio, String foto, String origen,
			Integer cantidad, String edadRecomendada) {
		super(codigo, nombre, descripcion, marca, precio, foto, origen,
				cantidad);
		this.edadRecomendada = edadRecomendada;
	}

	public Infantil(String nombre, String descripcion, String marca,
			Float precio, String foto, String origen, Integer cantidad,
			String edadRecomendada) {
		super(nombre, descripcion, marca, precio, foto, origen, cantidad);
		this.edadRecomendada = edadRecomendada;
	}

	public String getEdadRecomendada() {
		return edadRecomendada;
	}

	public void setEdadRecomendada(String edadRecomendada) {
		this.edadRecomendada = edadRecomendada;
	}

	@Override
	protected void addInformation(Document doc, Element rootElement) {
		// set attribute to articulo element
		// shorten way
//		rootElement.setAttribute("categoria", "infantil");

		// tipo elements
		Element tipo = doc.createElement("tipo");
		tipo.appendChild(doc.createTextNode("infantil"));
		rootElement.appendChild(tipo);
		
		// edadRecomendada elements
		Element edadRecomendadaElement = doc.createElement("edadRecomendada");
		String edadRecomendada2 = getEdadRecomendada() != null ? getEdadRecomendada() : "";
		edadRecomendadaElement.appendChild(doc.createTextNode(edadRecomendada2));
		rootElement.appendChild(edadRecomendadaElement);
	}

	@Override
	public String toString() {
		return "Infantil ["
				+ (edadRecomendada != null ? "edadRecomendada="
						+ edadRecomendada + ", " : "")
				+ (getCodigo() != null ? "getCodigo()=" + getCodigo() + ", "
						: "")
				+ (getNombre() != null ? "getNombre()=" + getNombre() + ", "
						: "")
				+ (getDescripcion() != null ? "getDescripcion()="
						+ getDescripcion() + ", " : "")
				+ (getMarca() != null ? "getMarca()=" + getMarca() + ", " : "")
				+ (getPrecio() != null ? "getPrecio()=" + getPrecio() + ", "
						: "")
				+ (getFoto() != null ? "getFoto()=" + getFoto() : "") + "]";
	}

	@Override
	public String getTipo() {
		return "Infantil";
	}
}
